package com.gollum.common.utils;

import cn.hutool.core.lang.tree.TreeNodeConfig;
import cn.hutool.core.lang.tree.TreeUtil;

/**
 * 树工具类
 *
 * @author Herther
 * @createTime 2022年10月11日 21:26:00
 * @since 1.0.0
 */

public class TreeUtils extends TreeUtil {

    /**
     * 获取构建前端树组件的返回数据
     *
     * @param
     * @return
     * @auther: Herther
     * @since 1.0.0
     * @date: 2022/10/11 21:37
     */
    public static TreeNodeConfig getTreeComponentNodeConfig(){
        TreeNodeConfig treeNodeConfig = new TreeNodeConfig()
                .setWeightKey(TreeConstants.SORT)
                .setIdKey(TreeConstants.KEY)
                .setNameKey(TreeConstants.TITLE)
                .setChildrenKey(TreeConstants.CHILDREN)
                // 最大递归深度
                .setDeep(5);
        return treeNodeConfig;
    }

    /** 配合前端树组件返回数据类型 **/
    public final class TreeConstants{
        /** 前端树排序 **/
        public static final String SORT ="sort";

        /** 键名 **/
        public static final String KEY ="key";

        /** 名称 **/
        public static final String TITLE ="title";

        /** 子节点 **/
        public static final String CHILDREN ="children";

        /** 不让父节点选中，属性 **/
        public static final String SELECTABLE ="selectable";
    }
}
